#ifndef SCENE_SKY_H
#define SCENE_SKY_H
#include "../geom/Vector3D.h"
#include "../glutil/PortableGL.h" 
#include "../glutil/shaderUtils.h"
#include "../mainapp/slotsData/SkyProperties.h"

namespace sceneelems{

	/** Class used to draw a sky as a fullscreen quad */
	class Sky
	{
		public:
			/** Constructor */
			Sky();
			/** Destructor */
			~Sky();
			void setSkyProperties(slotsdata::SkyProperties props);
            void setSkyBrightness(float value);
			/** Initializes all needed variables. Needs an active OpenGL context */
			void initialize();
			/** Draws the sky taking into account the given camera view vector and horizontal and vertical fields of view*/
			void draw(const geom::Vector3D & camViewVector, float cameraVerticalFOV, float cameraHorizontalFOV);
	
		private:
			glutil::ShaderProgram * m_skyShader;

	};
}
#endif

